package com.itany.corejava.code09_集合.set集合;

import java.util.Comparator;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月21日 14:06
 */
public class PersonComparator implements Comparator<Person> {


    /**
     * 当前对象的年龄大于参数对象的，返回值大于0，升序
     * 如果年龄相等，可以根据名字的长度进行比较,名字的长度降序排列
     * @param p1
     * @param p2
     * @return
     */
    @Override
    public int compare(Person p1, Person p2) {
        if(p1.getAge()>p2.getAge()){
            return 1;
        }else if(p1.getAge()<p2.getAge()){
            return -1;
        }else{
            if(p1.getName().length()>p2.getName().length()){
                return -1;//降序
            }else if(p1.getName().length()<p2.getName().length()){
                return 1;//升序
            }else{
                return 0;//说明age和name都是相等的，当等于0时表示是同一个对象, Set集合中不能保存相同元素, 会自动去除
            }
        }

    }
}
